active(f(a, b, X)) → mark(f(X, X, X))
active(c) → mark(a)
active(c) → mark(b)
mark(f(X1, X2, X3)) → active(f(mark(X1), X2, mark(X3)))
mark(a) → active(a)
mark(b) → active(b)
mark(c) → active(c)
f(mark(X1), X2, X3) → f(X1, X2, X3)
f(X1, mark(X2), X3) → f(X1, X2, X3)
f(X1, X2, mark(X3)) → f(X1, X2, X3)
f(active(X1), X2, X3) → f(X1, X2, X3)
f(X1, active(X2), X3) → f(X1, X2, X3)
f(X1, X2, active(X3)) → f(X1, X2, X3)
↳ QTRS
↳ DependencyPairsProof
active(f(a, b, X)) → mark(f(X, X, X))
active(c) → mark(a)
active(c) → mark(b)
mark(f(X1, X2, X3)) → active(f(mark(X1), X2, mark(X3)))
mark(a) → active(a)
mark(b) → active(b)
mark(c) → active(c)
f(mark(X1), X2, X3) → f(X1, X2, X3)
f(X1, mark(X2), X3) → f(X1, X2, X3)
f(X1, X2, mark(X3)) → f(X1, X2, X3)
f(active(X1), X2, X3) → f(X1, X2, X3)
f(X1, active(X2), X3) → f(X1, X2, X3)
f(X1, X2, active(X3)) → f(X1, X2, X3)
ACTIVE(c) → MARK(a)
MARK(f(X1, X2, X3)) → MARK(X3)
ACTIVE(f(a, b, X)) → F(X, X, X)
ACTIVE(f(a, b, X)) → MARK(f(X, X, X))
F(X1, mark(X2), X3) → F(X1, X2, X3)
F(X1, X2, mark(X3)) → F(X1, X2, X3)
MARK(f(X1, X2, X3)) → MARK(X1)
MARK(b) → ACTIVE(b)
F(active(X1), X2, X3) → F(X1, X2, X3)
MARK(a) → ACTIVE(a)
F(X1, active(X2), X3) → F(X1, X2, X3)
MARK(c) → ACTIVE(c)
MARK(f(X1, X2, X3)) → F(mark(X1), X2, mark(X3))
ACTIVE(c) → MARK(b)
F(X1, X2, active(X3)) → F(X1, X2, X3)
F(mark(X1), X2, X3) → F(X1, X2, X3)
MARK(f(X1, X2, X3)) → ACTIVE(f(mark(X1), X2, mark(X3)))
active(f(a, b, X)) → mark(f(X, X, X))
active(c) → mark(a)
active(c) → mark(b)
mark(f(X1, X2, X3)) → active(f(mark(X1), X2, mark(X3)))
mark(a) → active(a)
mark(b) → active(b)
mark(c) → active(c)
f(mark(X1), X2, X3) → f(X1, X2, X3)
f(X1, mark(X2), X3) → f(X1, X2, X3)
f(X1, X2, mark(X3)) → f(X1, X2, X3)
f(active(X1), X2, X3) → f(X1, X2, X3)
f(X1, active(X2), X3) → f(X1, X2, X3)
f(X1, X2, active(X3)) → f(X1, X2, X3)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
ACTIVE(c) → MARK(a)
MARK(f(X1, X2, X3)) → MARK(X3)
ACTIVE(f(a, b, X)) → F(X, X, X)
ACTIVE(f(a, b, X)) → MARK(f(X, X, X))
F(X1, mark(X2), X3) → F(X1, X2, X3)
F(X1, X2, mark(X3)) → F(X1, X2, X3)
MARK(f(X1, X2, X3)) → MARK(X1)
MARK(b) → ACTIVE(b)
F(active(X1), X2, X3) → F(X1, X2, X3)
MARK(a) → ACTIVE(a)
F(X1, active(X2), X3) → F(X1, X2, X3)
MARK(c) → ACTIVE(c)
MARK(f(X1, X2, X3)) → F(mark(X1), X2, mark(X3))
ACTIVE(c) → MARK(b)
F(X1, X2, active(X3)) → F(X1, X2, X3)
F(mark(X1), X2, X3) → F(X1, X2, X3)
MARK(f(X1, X2, X3)) → ACTIVE(f(mark(X1), X2, mark(X3)))
active(f(a, b, X)) → mark(f(X, X, X))
active(c) → mark(a)
active(c) → mark(b)
mark(f(X1, X2, X3)) → active(f(mark(X1), X2, mark(X3)))
mark(a) → active(a)
mark(b) → active(b)
mark(c) → active(c)
f(mark(X1), X2, X3) → f(X1, X2, X3)
f(X1, mark(X2), X3) → f(X1, X2, X3)
f(X1, X2, mark(X3)) → f(X1, X2, X3)
f(active(X1), X2, X3) → f(X1, X2, X3)
f(X1, active(X2), X3) → f(X1, X2, X3)
f(X1, X2, active(X3)) → f(X1, X2, X3)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
F(X1, active(X2), X3) → F(X1, X2, X3)
F(X1, X2, active(X3)) → F(X1, X2, X3)
F(mark(X1), X2, X3) → F(X1, X2, X3)
F(X1, mark(X2), X3) → F(X1, X2, X3)
F(X1, X2, mark(X3)) → F(X1, X2, X3)
F(active(X1), X2, X3) → F(X1, X2, X3)
active(f(a, b, X)) → mark(f(X, X, X))
active(c) → mark(a)
active(c) → mark(b)
mark(f(X1, X2, X3)) → active(f(mark(X1), X2, mark(X3)))
mark(a) → active(a)
mark(b) → active(b)
mark(c) → active(c)
f(mark(X1), X2, X3) → f(X1, X2, X3)
f(X1, mark(X2), X3) → f(X1, X2, X3)
f(X1, X2, mark(X3)) → f(X1, X2, X3)
f(active(X1), X2, X3) → f(X1, X2, X3)
f(X1, active(X2), X3) → f(X1, X2, X3)
f(X1, X2, active(X3)) → f(X1, X2, X3)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
F(X1, active(X2), X3) → F(X1, X2, X3)
F(mark(X1), X2, X3) → F(X1, X2, X3)
F(X1, X2, active(X3)) → F(X1, X2, X3)
F(X1, mark(X2), X3) → F(X1, X2, X3)
F(X1, X2, mark(X3)) → F(X1, X2, X3)
F(active(X1), X2, X3) → F(X1, X2, X3)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ Narrowing
MARK(f(X1, X2, X3)) → MARK(X3)
ACTIVE(f(a, b, X)) → MARK(f(X, X, X))
MARK(f(X1, X2, X3)) → ACTIVE(f(mark(X1), X2, mark(X3)))
MARK(f(X1, X2, X3)) → MARK(X1)
active(f(a, b, X)) → mark(f(X, X, X))
active(c) → mark(a)
active(c) → mark(b)
mark(f(X1, X2, X3)) → active(f(mark(X1), X2, mark(X3)))
mark(a) → active(a)
mark(b) → active(b)
mark(c) → active(c)
f(mark(X1), X2, X3) → f(X1, X2, X3)
f(X1, mark(X2), X3) → f(X1, X2, X3)
f(X1, X2, mark(X3)) → f(X1, X2, X3)
f(active(X1), X2, X3) → f(X1, X2, X3)
f(X1, active(X2), X3) → f(X1, X2, X3)
f(X1, X2, active(X3)) → f(X1, X2, X3)
MARK(f(f(x0, x1, x2), y1, y2)) → ACTIVE(f(active(f(mark(x0), x1, mark(x2))), y1, mark(y2)))
MARK(f(y0, y1, c)) → ACTIVE(f(mark(y0), y1, active(c)))
MARK(f(b, y1, y2)) → ACTIVE(f(active(b), y1, mark(y2)))
MARK(f(x0, x1, y2)) → ACTIVE(f(x0, x1, mark(y2)))
MARK(f(y0, active(x1), y2)) → ACTIVE(f(mark(y0), x1, mark(y2)))
MARK(f(y0, y1, b)) → ACTIVE(f(mark(y0), y1, active(b)))
MARK(f(y0, x1, x2)) → ACTIVE(f(mark(y0), x1, x2))
MARK(f(c, y1, y2)) → ACTIVE(f(active(c), y1, mark(y2)))
MARK(f(a, y1, y2)) → ACTIVE(f(active(a), y1, mark(y2)))
MARK(f(y0, y1, a)) → ACTIVE(f(mark(y0), y1, active(a)))
MARK(f(y0, y1, f(x0, x1, x2))) → ACTIVE(f(mark(y0), y1, active(f(mark(x0), x1, mark(x2)))))
MARK(f(y0, mark(x1), y2)) → ACTIVE(f(mark(y0), x1, mark(y2)))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ Narrowing
↳ QDP
MARK(f(X1, X2, X3)) → MARK(X3)
MARK(f(y0, y1, c)) → ACTIVE(f(mark(y0), y1, active(c)))
MARK(f(b, y1, y2)) → ACTIVE(f(active(b), y1, mark(y2)))
MARK(f(y0, active(x1), y2)) → ACTIVE(f(mark(y0), x1, mark(y2)))
ACTIVE(f(a, b, X)) → MARK(f(X, X, X))
MARK(f(y0, y1, b)) → ACTIVE(f(mark(y0), y1, active(b)))
MARK(f(y0, x1, x2)) → ACTIVE(f(mark(y0), x1, x2))
MARK(f(a, y1, y2)) → ACTIVE(f(active(a), y1, mark(y2)))
MARK(f(X1, X2, X3)) → MARK(X1)
MARK(f(y0, mark(x1), y2)) → ACTIVE(f(mark(y0), x1, mark(y2)))
MARK(f(f(x0, x1, x2), y1, y2)) → ACTIVE(f(active(f(mark(x0), x1, mark(x2))), y1, mark(y2)))
MARK(f(x0, x1, y2)) → ACTIVE(f(x0, x1, mark(y2)))
MARK(f(c, y1, y2)) → ACTIVE(f(active(c), y1, mark(y2)))
MARK(f(y0, y1, a)) → ACTIVE(f(mark(y0), y1, active(a)))
MARK(f(y0, y1, f(x0, x1, x2))) → ACTIVE(f(mark(y0), y1, active(f(mark(x0), x1, mark(x2)))))
active(f(a, b, X)) → mark(f(X, X, X))
active(c) → mark(a)
active(c) → mark(b)
mark(f(X1, X2, X3)) → active(f(mark(X1), X2, mark(X3)))
mark(a) → active(a)
mark(b) → active(b)
mark(c) → active(c)
f(mark(X1), X2, X3) → f(X1, X2, X3)
f(X1, mark(X2), X3) → f(X1, X2, X3)
f(X1, X2, mark(X3)) → f(X1, X2, X3)
f(active(X1), X2, X3) → f(X1, X2, X3)
f(X1, active(X2), X3) → f(X1, X2, X3)
f(X1, X2, active(X3)) → f(X1, X2, X3)